#pragma once

#define LITTLE_ENDIAN

#define DEBUG_OPEN_CONSOLE
#define DEBUG_NEW_DELETE
#define DEBUG_ASSERT

//#define BEGIN_NAMESPACE //namespace duoduo_framework{
//#define END_NAMESPACE   //}

#include <stdio.h>
#include <stdlib.h>

#include <queue>
using std::queue;

#include <string>
using std::string;

#include <vector>
using std::vector;

#include <map>
using std::map;

#ifdef WIN32

#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")

#include <time.h>
#include <tchar.h>
#include <windows.h>

#pragma warning(disable:4996)
#pragma warning(disable:4800)

#define DEBUG_OPEN_CONSOLE

#define snprintf _snprintf

#elif defined(LINUX)

#include <memory.h>
#include <stdarg.h>
#include <fcntl.h>
#include <errno.h>

#include <signal.h>
#include <pthread.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <net/if.h> 

#include <sys/epoll.h>

#endif

typedef signed __int64		int64;
typedef unsigned __int64	uint64;

typedef signed int			int32;
typedef unsigned int		uint32;

typedef signed short		int16;
typedef unsigned short		uint16;

typedef signed char			int8;
typedef unsigned char		uint8;

